package org.abettor.angleworm.router;

import java.net.InetSocketAddress;

/**
 * 通信隧道服务器
 * @author <a href="http://www.abettor.org/" target="_blank">abettor</a>
 *
 */
public interface TunnelServer extends Cloneable
{
	/**
	 * 获取目标地址
	 */
	public InetSocketAddress getDestination();

	/**
	 * 添加用于处理通信隧道服务器事件的监听器
	 * @param listener 事件监听器
	 */
	public void addListener(TunnelServerEventListener listener);

	/**
	 * 删除用于处理通信隧道服务器事件的监听器
	 * @param listener 事件监听器
	 */
	public void removeListener(TunnelServerEventListener listener);

	/**
	 * 删除所有用于处理通信隧道服务器事件的监听器
	 */
	public void removeAllListeners();
}
